/*
删除数字使结果最大
题目描述
给定一个数字字符串和一个整数k ，要求从字符串中删除k 个数字，使得删除后的数字字符串是所有可能情况中最大的。

例如，数字字符串为12345678 ，k = 2，那么删除1 和2 ，得到345678是所有可能情况中最大的。

输入格式
输入包含一个数字字符串和一个整数k ，数字字符串长度不超过 10^5 ，k 为非负整数且不超过数字字符串的长度。

输出格式
输出删除k 个数字后得到的最大数字字符串。

输入样例
12345678 2
输出样例
345678
*/
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    int k;
    cin >> s >> k;

    string stk;  // 用作单调栈
    for (char c : s) {
        while (!stk.empty() && k > 0 && stk.back() < c) {
            stk.pop_back();
            k--;
        }
        stk.push_back(c);
    }

    // 如果还有未删除的，继续从末尾删
    while (k > 0 && !stk.empty()) {
        stk.pop_back();
        k--;
    }

    // 去掉前导零（本题没说禁止前导零，但一般要去掉）
    int pos = 0;
    while (pos < (int)stk.size() && stk[pos] == '0') pos++;
    string result = stk.substr(pos);

    // 如果删完了，至少保留 "0"
    if (result.empty()) result = "0";

    cout << result << endl;
    return 0;
}
